x11: Don't beep on untrusted displays
authorMatthias Clasen <mclasen@redhat.com>
Wed, 21 Apr 2021 00:53:02 +0000 (20:53 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 21 Apr 2021 01:42:57 +0000 (21:42 -0400)
This can trigger BadAccess, and we don't
want that.

Fixes: #3862
gdk/x11/gdkdisplay-x11.c
gdk/x11/gdksurface-x11.c

index 4350f2eef80fea62a2fb4ed320c7adb8a6fe8be5..828889e9778cf0da6d978f634afe6bd5c56d048d 100644 (file)
@@ -1795,6 +1795,9 @@ _gdk_x11_display_update_grab_info_ungrab (GdkDisplay *display,
 static void
 gdk_x11_display_beep (GdkDisplay *display)
 {
+  if (!GDK_X11_DISPLAY (display)->trusted_client)
+    return;
+
 #ifdef HAVE_XKB
   XkbBell (GDK_DISPLAY_XDISPLAY (display), None, 0, None);
 #else
index 210f584d642f31ab38d0d3426a0193ca13105e9a..aeaca9c0f99f3e53b14af2d0c846bcb866f180dd 100644 (file)
@@ -4542,6 +4542,9 @@ gdk_x11_surface_beep (GdkSurface *surface)
 
   display = GDK_SURFACE_DISPLAY (surface);
 
+  if (!GDK_X11_DISPLAY (display)->trusted_client)
+    return FALSE;
+
 #ifdef HAVE_XKB
   if (GDK_X11_DISPLAY (display)->use_xkb)
     {